Práctica 2: Limpieza y validación de los datos

M2.851 - Tipología y ciclo de vida de los datos

Xavier Martínez Bartra
Martín Martínez Baltar

Índice

1. Descripción del dataset e importancia de los datos.

DESCRIPCIÓN DEL DATASET

Los datos seleccionados contienen información del nivel de ingresos y otras dimensiones cualitativas de una muestra de 92857 observaciones que pretenden representar la población adulta de Corea del Sud. La muestra contiene datos estratificados de la población coreana recopilados desde el año 2005 al año 2018; y permiten derivar desigualdades en niveles de ingresos en ámbitos como género, nivel educativo, origen familiar,….

https://www.kaggle.com/hongsean/korea-income-and-welfare?select=Korea+Income+and+Welfare.csv

La República de Corea es uno de los países con más crecimiento económico durante la última mitad de siglo. Constituye un ejercicio interesante, pues, indagar como se distribuyen los ingresos obtenidos entre la población desde diferentes enfoques qualitativos.

Los datos contienen 14 columnas y 92857 observaciones.

Las variables del dataset son las siguientes:

IMPORTANCIA DE LOS DATOS

Tenemos información qualitativa diversa de como se distribuyen los ingresos entre la población sudcoreana. A partir de la variable income podemos analizar como ha sido la distribución de los ingresos desde distintas ópticas. (área geográfica, estudios, religión, género,..)

Si bien hay algunos valores faltantes en algunos campos como ocupación, o tamaño de la empresa del trabajador, la mayoría de campos tienen muy pocos campos vacíos.

Este dataset constituye un juego muy inexplorado y nos ofrece posibilidades de indagar sobre una temática de la que no tenemos conocimientos previos.

Los datos nos permitirán indagar sobre cómo se distribuyen los ingresos entre la población. ¿Cuales son los grupos que tienen mayores ingresos? ¿cuáles son los que menos ¿ Hay diferencias estadísticamente significativas? ¿podemos construir un modelo de regresión explicativo con los datos? ¿cuáles son las diferencias mas notorias entre grupos ¿ y las similitudes?

Nuestro objetivo, pues, es indagar sobre las posibles desigualdades sociales que existen en los ingresos de Corea, así como generar concimiento estadístico analizando las distintas catogrias de interés.

2. Integración y selección de los datos de interés a analizar

Cargamos los datos en un DataFrame de pandas

Examinamos la estructura de los datos.

Como el objetivo es el análisis de la distribución de los ingresos en la población sudcoreana solo vamos a utilizar los datos del año 2018 (análisis de datos transversales); el último año del cúal disponemos datos.

Tenemos todos los datos cargados en el dataset. Podemos examinar el detalle del mismo con el módulo de python ProfileReport que nos reporta el detalla del dataset. Podemos observar que aunque la mayoría de variables tienen los datos completos, tendremos que tratar algunas. También tendremos que codificar adecuadamente las variables de interés. Observamos

3. Limpieza de los datos.

Pasamos a realizar el proceso de limpieza de los datos para preparar el dataset adecuadamente para el posterior análisis.

3.1 Elementos vacíos.

La variable marriage tiene algunos valores fuera de rango (0 y 9).Procedemos a codificarlos como 6 (others).

La variable ocupación tiene muchas categorias. Convertimos los valores con campo vacío a 0.

Las variables company size también tienen muchas observaciones vacias que codificamos 0.

Los valores en occupation por encima de 1012, son valores erróneos que se deben eliminar o sustituir.

Los valores de reason_non_worker en 100, están fuera de rango y se deben eliminar o sustituir. company_size se deben tratar en el siguiente apartado (valores atípicos) ya que no tenemos información sobre el rango.

Creamos la variable age a partir de la variable year_born

Pasamos a codificar las variables.

Eliminamos las variables id, year and wave ya que no las necesitamos para nuestros objetivos.

Guardamos el dataset preprocesado y listo para analizar.

3.2 Identificación y tratamiento de valores extremos.

En el caso de la variable income, es una variable muy asimetrica con una larga cola a la derecha de la destribución con muchos valores extremos. Valores con income > 17500 Transformaremos esta variable con un logaritmo natural.

La variable es tan asimétrica que casi todos los valores de la distribución parecen concentrados cerca del 0.

La transformación logaritmica de variables que pueden tener muchos valores extremos en la parte alta (extremo superior de la distribución) hace que nos sea más fácil y práctico comparar los valores de la variable.

Es muy común en variables económicas como los ingresos que haya un gran sesgo a la derecha de la distribución, donde las personas que ganan cantidades desproporcionadamente grandes de ingresos tiran de la media mucho más alta que la mediana. El uso de ingresos logarítmicos hace que la variable se acerque más a una distribución normal (lo que nos atorga mejores propiedades estadísticas) y también reducimos el sesgo de la heterocedasticidad.

El resto de variables no presenta valores extremos, ya que meramente constituyen los campos descriptivos de la población de interés.

Observamos como los ingresos logarítmicos tienen una distribución mucho más simétrica que se acerca mucho más a una distribución normal.

4. Análisis de los datos.

4.1. Selección de los grupos de datos que se quieren analizar/comparar (planificación de los análisis a aplicar).

Examinamos las dimensiones del dataset. Utilizaremos algunas de ellas para realizar las pruebas estadísticas y un modelo de regresión :

Para analizar visualmente la distribución de los ingresos por dimensiones qualitativas utilizaremos diagramas de interacción. Estas figuras muestran las categorias de una variable en el eje X y tiene una línea separada para las medias de cada categoria de la otra variable. El eje Y es la variable dependiente.

Visualizamos las distintas dimensiones por sexo. Posteriormente analizaremos inferencia estadística sobre las diferencias de ingresos por género.

Ingresos por region y sexo

Observamos que no existen diferencias muy significativas por regiones, pero si que Chong-nam, Kyeon-gi y Seoul son las regiones con mayor media de ingresos.

Ingresos por número de membros en la familia y sexo

A medida que un ciudadano tiene más miembros de una familia, mayor tienden a ser la media de sus ingresos. Llama la atención que en esta dimensión la distribución para hombres y mujeres es muy similar.

Ingresos por edad y sexo

En el caso de la edad observamos como la población a partir de 20 años tiene unos ingresos crecientes hasta los 50 años. A partir de los 50 años empiezan a disminuir los ingresos. En el caso de los mujeres el comportamiento es mucho mas irregular; pero si que observamos un decrecimiento constante de los ingresos a partir de los 45 años.

Ingresos por nivel educativo y sexo

A medida que aumenta el nivel educativo aumenta la media de los ingresos de forma muy clara (tanto en hombres como en mujeres).

4.2 Comprobación de la normalidad y la homocedasticidad:

4.2.1. Normalidad de la distribución salarial en escala logarítmica:

Para comprobar la normalidad de una muestra podemos utilizar el test de Shapiro-Wilk. El problema es que el test de Shapiro-Wilk, no es un buen test para muestras grandes. Como alternativa tenemos el test D'Agostino's y Pearson's implementado en scipy.stats.normaltest.

También podemos utilizar el diagrama q-q.

Según los datos anteriores deberíamos rechazar la hipótesis nula de que la variable $ log\_income \in N(0,1)$ dado que el $p-valor < \alpha$ siendo $\alpha = 0.05$.

Podemos descartar los outliers y comprobar de nuevo la normalidad:

Viendo los resultados, pese que a no distar demasiado de una distribución normal, no podemos decir que la distribución resultante de aplicar la transformación logarítmica a la variable income, sea una distribución normal.

4.2.2 Comprobación de la homocedasticidad entre las poblaciones de hombres y mujeres:

A simple vista, según los gráficos anteriores, podemos ver que existe desigualdad salarial donde el sexo parece ser importante. Aunque esto lo trataremos en el siguiente apartado.

En este caso vamos a compromar la homocedasticidad entre las dos muestras: vamos a comprobar si las distribuciones tienen una varianza similar o no. Este test, nos servirá para elegir el estadístico a la hora de contrastar la media de las dos muestras más adelante.

Para comprobar la homocedasticidad podemos usar el test de Levene también disponible en R. El test de Levene es menos sensible que otros test, como el F-test a la no normalidad de las muestras, así que de este modo no tenemos que comprobar la normalidad de la población de hombres y mujeres.

La hipótesis nula que comprobará el test de Levene es la de que las dos muestras tienen varianza similar por lo que si el p-valor obtenido es menor que el nivel de significancia $\alpha$ se rechazará la hipótesis nula.

4.3 Aplicación de pruebas estadísticas para comparar los grupos de datos.

4.3.1 ¿Son los ingresos de los hombres iguales a los de las mujeres? Contraste de hipótesis bilateral sobre la media salarial de la población de hombres y la poblacion de mujeres:

El test en cuestión comprobará si el salario medio entre hombres y mujeres es diferente. Tenemos pues:

El test se trata de un contraste de hipótesis bilateral sobre la muestra de dos poblaciones y varianza desconocida diferente (según el resultado obtenido en el test de homocedasticidad del apartado anterior).

Para este tipo de test, disponemos del estadístico t, que sigue una distribución t de Student.

Este test está implementado en las funciones ttest_ind_from_stats y ttest_ind de la librería scipy.

Podemos utilizar este estadístico sabiendo que según el teorema del límite central, independientemente de que la población original siga una distribución normal o no, la distribución de las medias muestrales si lo hará.

El p-valor es $0 < \alpha = 0.05$, por lo que se rechaza la hipótesis nula $H_0$ que implica igualdad salarial entre hombres y mujeres, y se acepta la hipótesis alternativa $H_1: \mu_{salario\_hombres}\neq \mu_{salario\_mujeres}$.

Podemos hacernos ahora la pregunta de cuanto más ganan los hombres de que las mujeres. ?

4.3.2.a ¿Podemos decir entonces que los hombres de corea del sur ganan 3000 M₩ más que las mujeres?. Test de contraste unilateral por la derecha sobre la media de dos muestras:

Siendo $\delta_{hm} = 3000$.

El test que haremos ahora es un test sobre la diferencia de la media unilateral por la unilateral por la derecha.

El test es similar al realizado anteriormente.

¿Y 2600 M₩ más?

Siendo $\delta_{hm} = 3400$.

Como en el último test, el p-valor es $> \alpha$ se acepta la hipótesis nula, que el salario medio de los hombres es cercano a 3400 M₩ por encima del salario medio de las mujeres.

Es decir, los hombres ganan en torno a 3400 M₩ más que las mujeres.

4.3.3 Modelo de Regresion explicativo del los log ingresos con CatBoost Regressor

Crearemos un modelo predictor con CatBoost, un algoritmo de Gradient Boosting con árboles de decisión. Este algoritmo genera un modelo predictivo muy robusto en forma de un conjunto de muchos árboles de decisión "débiles". Para más información, ver:

https://catboost.ai/news/catboost-enables-fast-gradient-boosting-on-decision-trees-using-gpus

Este modelo es muy útil cuando se dispone de muchas variables categoricas ya que nos permite entrenarlo sin tener que codificar las variables categoricas. También nos permite obtener un modelo interpretable en relación al poder explicativo de sus atributos.

Entrenamos el modelo con 5000 iteraciones validando los datos con el conjunto de validación. A partir de las propiedades del DataSet y nuestros predictores, el modelo establece una tasa de aprendizaje de 0,024628.

Usando el conjunto de validación con el entrenamiento de los datos, el algoritmo selecciona el número de árboles que minimizan la función de coste.

En el log podemos ver cómo a medida que el modelo aprende con los datos, el error de aprendizaje y el error de validación disminuyen con cada iteración (generación de nuevos árboles). Después de 100 iteraciones, el modelo tiene progresivamente menos y menos errores en el conjunto de validación. El modelo comienza a sobreajustarse cuando aumenta el número de iteraciones, pero el número de errores de validación no disminuye o comienza a aumentar.

Como hemos seleccionado early_stopping_rounds = 50, el modelo se detiene cuando pasan 50 iteraciones sin reducir los errores del conjunto de validación.

El modelo obtiene los errores más bajos con 564 árboles. A partir de aquí, el modelo comienza a sobreajustarse a los datos de entrenamiento.

El coeficiente de determinación del modelo de regresión es 0.73, por lo que dispone de un poder exlicativo de los datos relativamente alto.

5.Representación de los resultados a partir de tablas y gráficas.

5.1 Test de normalidad sobre la variable "log_income".

Hemos comprobado la normalidad en la distribución de la muestra resultante de pasar a escala logarítmica natural la variable income, obteniendo los resultados en los que se rechaza la hipótesis nula que implica la existencia de normalidad en la muestra con los resultados:

El diagrama qq sin embargo muestra muchas muestras sobre la línea que indica normalidad, sin embargo, no es suficiente como para asegurar la normalidad en la muestra.

A continuación se han eliminado los outliers dado que podrían estar afectando al cálculo de los test y podría ser interesante descartarlos para obtener una muestra distribuída normalmente, pero nuevamente, hemos obtenido resultados similares.

Es posible que dividiendo la muestra en muestras más pequeñas según otras características como sexo, estudios o tipo de ocupación obtengamos muestras que si siguen una distribución normal. Otra opción sería la de probar la transformación de la variable con alguna otra función matemática.

5.2 Test de homocedasticidad y contrastes de hipótesis sobre la variable género:

Como hemos comentado la diferencia salarial según el sexo en Corea del Sur es bastante grande. Para el año 2018 determinamos que los hombres ganan aproximadamente 3400M₩ más que las mujeres, según los contrastes de hipótesis que hemos realizado:

Para todos los tests anteriores se ha usado el estadístico t, que sigue una distribución normalizada de t-student.

Previamente se ha realizado el test de homocedasticidad, necesario para elegir el tipo de estadístico, y que indica que que las varianzas de las dos poblaciones no son iguales. Para ello se ha utilizado el test de Levene:

Esto se puede ver en el siguiente histograma:

Y también lo hemos podido ver en los diagramas de caja y los diagramas de violín mostrados durante la resolución del ejercicio:

Como decíamos y como se muestra en los gráficos anteriores la media de ingresos de los hombres es significativamente mayor a la de las mujeres, pero además, en la población femenina, la mayoría de sus miembros se agrupan en las rentas con menores ingresos, ocurriendo lo contrario entre los hombres.

Esto es un indicio de una gran brecha salarial relacionada con el sexo, sin embargo, debe ser tratada como tal, como un indicio, y empezar a indagar para poder descubrir las verdaderas causas que provocan este efecto. Para ello necesitaríamos un conocimiento a priori que requeriría de profundizar más en la ideología (en sentido amplio: religión, costumbres, tradiciones, historia...) y base (economía, sistema político) de Corea del Sur lo que escapa a esta práctica. No obstante, también nos podemos apoyar en los propios datos para complementar el análisis:

Por ejemplo, si observamos la cantidad de muestras que tenemos para cada sexo según el nivel de estudios se puede observar que, en el caso de los hombres, hay una mayor proporción para los niveles 5 (Estudios superiores) y 7(Grado universitario) que en el caso de las mujeres. Es decir, a priori los hombres suelen cursar estudios superiores mientras que las mujeres no, y esto puede verse reflejado en los ingresos al ocupar los primeros puestos más cualificados.

Sin embargo, el nivel de estudios no sería determinante, dado que para el mismo nivel de estudios nuestros, datos vuelven a indicar desigualdad salarial, especialmente para los estudios superiores (5, 6, 7).

Pese a esto, hay que tener en cuenta que en las democracias liberales desarrolladas actuales, se suelen premiar aquellos trabajos relacionados técnicos, por lo que, para tener un análisis con más precisión, sería bueno conocer que tipo de estudios cursan hombres y mujeres. En nuestro caso no disponemos de estos datos.

Para acercarnos más a esto podemos observar el tipo de ocupación:

Tras este análisis complementario, podemos concluir que, si bien la desigualdad salarial no es igual para todos los tipos de ocupaciones, según nuestros datos, existe una brecha de género salarial significativa e independiente del puesto y estudios, que en principio apuntaría tanto a una discriminación directa a la hora de establecer sus salarios como a la ideología(nuevamente en sentido amplio) o indiosincrasia que haría que las mujeres no cursasen estudios superiores para poder acceder a mejores salarios.

Como se ha comentado antes, para poder confirmar el conocimiento derivado de este conjunto de datos, sería necesario comprender mejor el país y así concretizar las verdaderas causas.

5.3 Interpretabilidad modelo de regresión CatBoost

Podemos computar la importancia de cada atributo para configurar el modelo. La "importancia" mide cuánto cambia la predicción del modelo en promedio si cambiamos el valor del atributo. Cuanto mayor sea el valor de importancia, mayor será el cambio en el valor de predicción en promedio, si se cambia este predictor. Los valores están normalizados en modo que la suma de las importancias de todos los atributos es igual a 100.

Observamos que la variable más importante del modelo es family member con mucha diferencia. Luego tenemos a la edad, company size y education_level.

Observamos que modificando el valor de family_member, las predicciones del modelo varían un 39.13%.

Otro enfoque para interpretar el comportamiento del modelo es el análisis de los valores de shapley.

Las explicaciones de Shapley (SHAP) son un enfoque de teoría de juegos para explicar el resultado de cualquier modelo de aprendizaje automático. Tree SHAP nos permite dar una explicación del comportamiento del modelo, en particular de cómo cada atributo impacta las predicciones del modelo. Cada resultado / predicción se considera una suma de la contribución de cada atributo individual.

Esta figura nos brinda una gran cantidad de información sobre la estructura del modelo. En la figura podemos encontrar:

Como hemos visto el número de miembros de la familia es la variable más importante para determinar los ingresos, seguido del nivel educativo y tamaño de la empresa

Observamos cómo hay muchas observaciones con valores altos de miembros de familia (color rojo) tienen un impacto positivo en la predicción de los ingresos, y viceversa, valores bajos (color azul) tienen un impacto negativo en la predicción de los ingresos.

6. A partir de los resultados obtenidos, ¿cuáles son las conclusiones?

En este ejercicio se han computado diferentes técnicas de estadística descriptiva y de inferencia estadística para examinar la distribución de los ingresos de la población de Corea del Sur desde distintos puntos de vista. (muestra año 2018)

En el preprocesado de datos se han codificado los datos correctamente, se ha creado la variable edad y se han transformado los ingresos con un logarítmo natural para disponer de una variable más adecuada para la inferencia estadística.

En el apartado 4 de selección de los grupos a analizar se ha examinado visualmente la exitencia de diferencias muy notorias de los ingresos entre los sexos. Se han examinado los efectos de los campos de las distintas categorias (miembros familia, edad, área geografica, estudios....).

Para indagar empíricamente sobre estas diferencias, se han realizado varias pruebas estadísticas y construido un modelo de regresión con el algoritmo Catboost.

Se ha comprobado como los ingresos logarítmicos (aún descartando los principales outliers de la distribución) si bien se acercan a una distribución normal, no consiguen pasar los principales tests de normalidad. También se ha revisado que las varianzas entre las poblaciones de hombres y mujeres son distintas con un nivel de significancia del 0.05.

Se ha examinado con un test bilateral si los ingresos de hombres y las mujeres eran iguales y se ha concluido que no. Con otro test se ha evidencia estadísticamente que el salario medio de los hombres es cercano a 3400 M₩ por encima del salario medio de las mujeres, lo que indica una gran brecha salaria relacionada con el género. Esto puede ser debido a diversas causas, como por ejemplo que los hombres de media tienen más proporción de estudios superiores,...

Para cada uno de los tests, se han detallado los resultados con figuras y explicaciones pertinentes.

El modelo de regresión con árboles de decisión Catboost Regressor nos ha permitido construir un modelo de regresión con un R2 de 0.73. El objetivo de este modelo es indagar sobre poder explicativo que tienen las diferentes variables sobre los ingresos logarítmicos. Para esto se ha analizado la importancia de las variables y se ha concluido que el número de miembros de la familia de cada persona es la variable más influyente en determinar los ingresos de los ciudadanos de Corea del Sur, seguida a mucha distancia de la edad.

Con el análisis Shap hemos obtenido una conclusión similar con el número de miembros de la familia, pero dando mayor importancia al nivel educativo que la edad.

Contribuciones:

Contribuciones Integrante 1 Integrante 2
Investigación previa Xavier Martínez Bartra Martín Martínez Baltar
Redacción de respuestas Xavier Martínez Bartra Martín Martínez Baltar
Desarrollo de código Xavier Martínez Bartra Martín Martínez Baltar

Fuentes: